package admrouter

import (
	"github.com/gin-gonic/gin"
	"yundian/internel/app/handlers/pcl/admin/userhandler"
	"yundian/internel/app/middlewares"
	"yundian/internel/pkg/dingo"
)

func InitUser() dingo.ApiRouter {
	return func(g *gin.RouterGroup) {
		s := g.Group("steward")
		s.Use(middlewares.JwtAuthMiddleware)
		s.POST("list-staff", userhandler.HandleGetStewardUserList)            // 获取员工列表
		s.POST("insert-staff", userhandler.HandleInsertStewardUser)           // 新增员工
		s.POST("update-staff", userhandler.HandleUpdateStewardUser)           // 修改员工
		s.POST("delete-staff", userhandler.HandleDeleteStewardUser)           // 删除员工
		s.POST("list-place-staff", userhandler.HandleGetStewardPlaceUserList) // 获取网点关联员工列表
		s.POST("set-place-staff", userhandler.SetStewardPlaceStaff)           // 设置门店员工
		s.POST("set-workforce-staff", userhandler.SetStewardWorkforceStaff)   // 员工排班配置
		s.POST("get-members-list", userhandler.HandleGetMembersList)          // 获取会员列表
		s.POST("update-pwd-staff", userhandler.HandleUpdateUserStaffPassword) // 更新员工用户密码

		// 上传图片 - 与upload.go中的路由重复了
		//s.POST("upload-goods-img", stewarduploadhandler.HandleStewardUploadGoodsImg)
		//s.POST("upload-common-img", stewarduploadhandler.HandleStewardUploadGoodsImg)

		// 用户相关 API
		u := g.Group("user")
		//测试定时任务
		u.POST("agentIncomeStatistics", userhandler.AgentIncomeStatistics)
		u.POST("separationAddress", userhandler.SeparationAddress)
		u.POST("placeUser", userhandler.HandlePlaceUser)
		u.POST("getUserDeviceInfo", userhandler.GetUserDeviceInfo)

		u.PUT("bind-zfb", userhandler.HandleBindZfbUserInfo)
		u.PUT("unbind-zfb", userhandler.HandleUnBindZfbUserInfo)

		u.Use(middlewares.JwtAuthMiddleware) // 需要登录

		// 所有用户
		u.GET("all", userhandler.GetAllUserList)

		//代理商相关
		u.GET("agent", userhandler.HandleGetAgentUserList)              // 查询代理商用户列表
		u.POST("agent", userhandler.HandleInsertAgentUser)              // 新增代理商用户
		u.PUT("agent", userhandler.HandleUpdateAgentUser)               // 修改代理商用户
		u.GET("superior-agent", userhandler.HandleGetSuperiorAgentInfo) // 获取上级代理信息
		u.GET("getParent", userhandler.HandleGetParentProfitProportion) // 获取上级代理商分成
		u.GET("getUserById", userhandler.HandleGetUserById)             //获取代理信息
		u.GET("getUserBranch", userhandler.HandleGetUserBranchById)     // 获取分公司用户
		u.GET("getUserAgent", userhandler.HandleGetUserAgentById)       // 获取代理商用户

		u.GET("getIsAdmin", userhandler.GetUserIsAdmin)                             //获取代理商的角色列表
		u.GET("list/statistics-by-isadmin", userhandler.GetUserStaticticsByIsAdmin) //获取不同角色的用户统计分析
		u.POST("set-steward-status", userhandler.HandleSetUserStewardStatus)        // 设置2.0服务是否开启

		u.POST("userImport", userhandler.HandleUserImport)

		u.GET("ext-sign-user", userhandler.GetExtSignUsers) //签约用户

		// 商户相关
		u.GET("place", userhandler.HandleGetPlaceUserList)          // 查询商户用户列表
		u.POST("place", userhandler.HandleInsertPlaceUser)          // 新增商户用户
		u.PUT("place", userhandler.HandleUpdatePlaceUser)           // 修改商户用户
		u.GET("place/name", userhandler.GetPlaceUserListByName)     // 模糊查询商户
		u.GET("userAllList/name", userhandler.GetUserAllListByName) // 模糊查询 商户/代理商/分公司

		// 分公司用户相关
		u.GET("branch", userhandler.HandleGetBranchUserList)
		u.GET("branch-no-pager", userhandler.HandleGetBranchUserListNoPager)
		u.POST("branch", userhandler.HandleInsertBranchUser)
		u.PUT("branch", userhandler.HandleUpdateBranchUser)

		u.GET("maintainer", userhandler.GetUserListMaintainer) // 查询员工
		u.GET("msc", userhandler.GetUserListMsc)               // 查询供应商
		u.GET("by-name", userhandler.GetUserListByName)        //
		u.GET("by-username", userhandler.GetAllChildUserListByUserName)
		u.GET("by-pid", userhandler.HandleGetUserInfoByPid)                          // 查询上级代理商
		u.GET("by-pid-list", userhandler.HandleGetUserInfoByPidAllList)              // 查询所有上级代理商/关联KA用户
		u.PUT("password", userhandler.HandleUpdateUserPassword)                      // 更新管理员用户密码
		u.PUT("update-qrcode", userhandler.HandleUpdateUserQrcode)                   // 更新收款二维码
		u.GET("check-phone", userhandler.HandleGetUserByPhone)                       //
		u.GET("check-profitProportion", userhandler.HandleCheckUserProfitProportion) //

		u.GET("", userhandler.HandleGetUserList)            // 查询管理员用户列表
		u.POST("", userhandler.HandleInsertUser)            // 新增管理员用户信息
		u.PUT("", userhandler.HandleUpdateUser)             // 更新管理员用户信息
		u.PUT("status", userhandler.HandleUpdateUserStatus) // 更新管理员用户状态

		u.DELETE("delete", userhandler.HandleUpdateUserDeleteStatus) // 更新管理员用户删除状态
		u.DELETE("", userhandler.HandleDeleteUser)
		u.GET("regions", userhandler.HandleGetRegions)                // 查询省、市、县
		u.GET("regions-parent", userhandler.HandleGetRegionsByParent) // 查询省、市、县                             // 删除管理员用户信息

		u.GET("agent-place", userhandler.HandleGetAgentPlaceUserList) // 查询伪代理商用户列表
		u.GET("all-agent", userhandler.HandleGetAllAgentUserList)     // 查询代理商用户列表
		//u.GET("superior-agent", userhandler.HandleGetSuperiorAgentList) // 查询代理商用户列表
		u.GET("user-agent", userhandler.HandleGetUserAgent) // 添加代理商时上级

		// 获取代理商、运营商
		//u.GET("parent", userhandler.HandleGetParentUser)
		//
		//u.DELETE("ka", userhandler.HandleDeleteKAUser)

		// 员工
		u.GET("staff", userhandler.HandleGetStaffUserList) // 查询员工用户列表

		u.DELETE("agentDelete", userhandler.HandleDeleteAgentUser)   //删除代理商用户
		u.DELETE("branchDelete", userhandler.HandleDeleteUserBranch) //删除分公司用户
		u.DELETE("placesDelete", userhandler.HandleDeletePlacesUser) //删除网点用户
		u.DELETE("staffDelete", userhandler.HandleDeleteUserById)    //删除员工

		u.PUT("unfastenWeChat", userhandler.HandleUnBindWxInfo)   // 解除微信
		u.PUT("changeUserType", userhandler.HandleChangeUserType) // 修改用户类型 商户--> 代理商  代理商-->商户

		//查询所有代理商
		u.POST("getUser", userhandler.HandleGetUser)
		//查询代理商和商户
		u.POST("getAdminOrPlaces", userhandler.HandleGetAdminOrPlace)

		// 用户分红修改日志列表
		u.GET("all-profit-log", userhandler.HandleGetProfitLogList)

		//上传收款二维码
		u.POST("qr-code-upload", userhandler.HandleQRCodePathUpload)

		u.POST("ali-oss-upload", userhandler.HandleAliOssUploadImage)
		u.POST("img-upload", userhandler.HandleAliOssUploadImage)

		//合作登记
		u.GET("cooperation", userhandler.HandleCooperationRegisterList)
		u.POST("cooperation", userhandler.HandleCreateCooperationRegister)
		u.PUT("cooperation", userhandler.HandleUpdateCooperationRegister)
		u.DELETE("cooperation", userhandler.HandleDeleteCooperationRegister)
	}
}
